#ifndef CMENURENDERER_H
#define CMENURENDERER_H

#include "constantes.h"
#include "ISingleton.h"

class CSDLManager;
class CLevelRenderer;
struct SDL_Surface;

//**************************
//Manage Rendering of the Menu
//**************************
class CMenuRenderer : public ISingleton< CMenuRenderer >
{
    private:
		DECLARE_SINGLETON( CMenuRenderer );

        CSDLManager * m_SDLManager;         //instance of the SDL Manager

        CLevelRenderer * m_LevelRenderer;   //instance of the level renderer

        int m_iOptionSelected;              //Selected option in the menu

        SDL_Surface * m_BackgroundMenu;      //surface for background

        SDL_Surface * m_GameTitle;      //surface for the title

        SDL_Surface ** m_Menu;          //Surfaces for the menu

        SDL_Surface * m_Highscore;     //Highscore surface for the menu

        SDL_Surface ** m_Numbers;     //Numbers surface to draw in the menu

        long m_lHighScore;               //highscore of the game

        //**************************
        //Description : Constructor
        //Parameters : None
        //Note : Private because a single instance is needed
        //**************************
        CMenuRenderer();

        //**************************
        //Description : Destructor
        //Parameters : None
        //Note : None
        //**************************
        virtual ~CMenuRenderer();

    public:
        //**************************
        //Description : Init the instance
        //Parameters : None
        //Return Value : None
        //Note : None
        //**************************
        virtual void Init();

        //**************************
        //Description : DeInit the instance
        //Parameters : None
        //Return Value : None
        //Note : None
        //**************************
        virtual void DeInit();

        //**************************
        //Description : Start the game with the animation (TODO) and launch the menu
        //Parameters : None
        //Return Value : None
        //Note : None
        //**************************
        void StartMenu();

        //**************************
        //Description : Draw the menu
        //Parameters : None
        //Return Value : None
        //Note : None
        //**************************
        void DrawMenu();

        //**************************
        //Description : Manage the menu
        //Parameters : None
        //Return Value : None
        //Note : None
        //**************************
        void Menu();
};

#endif // CMENURENDERER_H
